#include <hge.h>
#include <hgefont.h>
#include <hgegui.h>
#include <math.h>

/**
 * Redefinition of basic types
 * makes code more readable
 */
typedef HEFFECT SOUND;
typedef HTEXTURE TEXTURE;
typedef HGE ENGINE;
typedef hgeSprite IMAGE;

/********************
 * GLOBAL VARIABLES *
 ********************/
ENGINE * hge = 0;
SOUND snd, menu, level1, level2, level3, level4, jump, punch1, punch2, slap;
TEXTURE tex;
hgeQuad	quad;
hgeGUI * gui;
hgeFont * fnt;
hgeSprite * spr;
int nav = 16;
int round = 1;
HCHANNEL toggle;
bool showCredits = false;
bool beginGame = false;
bool showHelp = false;
bool showInfo = false;
bool loadedNav = false;
bool levelStarted = false;

enum colors {
    RED          = 0xFF0000FF,
	GREEN        = 0xFF00FF00,
	BLUE         = 0xFFFF0000,
	WHITE        = 0xFFFFFFFF,
	LIGHTGRAY    = 0xFFBFBFBF,
	GRAY         = 0xFF7F7F7F,
	DARKGRAY     = 0xFF3F3F3F,		
	BLACK        = 0xFF000000,
	AZURE        = 0xFFFF7F00,
    VIOLET       = 0xFFFF007F,
    ROSE         = 0xFF7F00FF,
    ORANGE       = 0xFF007FFF,
    CHARTREUSE   = 0xFF00FF7F,
    SPRING_GREEN = 0xFF7FFF00,
    CYAN         = 0xFFFFFF00,
    MAGENTA      = 0xFFFF00FF,
    YELLOW       = 0xFF00FFFF,
};

/**
 * Shows my logo
 */
void VAUGHN_LOGO( void );

/**
 * Shows a description of all characters
 * pretty informative in my opinion
 */
void SHOW_INFO();

/**
 * Updates menu
 */
bool Update();

/**
 * Renders graphics
 */
bool RenderFunc();

/**
 * Initialization of game
 */
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
